package Disparo;
import java.awt.Point;
import javax.swing.JFrame;
import javax.swing.JLabel;
import Juego.*;
import Naves.*;

public class Bala extends JLabel{
	protected Gui juego;
	protected int velocidad;
	protected boolean arriba;
	protected boolean bajar;
	/**CREA UN OBJETO DE TIPO BALA QUE RECIBE DE PARAMETROS LA VELOCIDAD Y EL JUEGO ( GUI)
	*/
	public Bala(Gui g,int vel){
		repaint();
		juego=g;
		velocidad=vel;
		arriba=false;
		bajar=false;
	}
	/**Describe el tipo de movimiento de la bala
	 */
	public void TipoMovimiento(boolean a,boolean b){
		arriba=a;
		bajar=b;
	}
	
	/*
	 OBTIENE LA POSICION ACTUAL DE LA BALA Y LA MODIFICA SEGUN SUS ATRIBUTOS.
	 */
	public void Mover(){
		repaint();
		Point pos=this.getLocation();	
		if(arriba && !bajar){ 
				int v = pos.y - velocidad;
				pos.setLocation(pos.x, v);
		}
		if(bajar && !arriba){
			int v = pos.y + velocidad;
			pos.setLocation(pos.x, v);	
		}
		this.setLocation(pos);
		repaint();
	}
	
	//ELIMINA UNA BALA
	
	public void borrarbala(){
		this.setVisible(false);
		juego=null;
	}

	//RETORNA LA VELOCIDAD DE LA BALA
	
	public int getVelocidad(){
		return velocidad;
	}
	
	//TESTEA SI HUBO UN CHOQUE DE UNA BALA CON  ALGUNA DE LAS NAVES DE LA PANTALLA.
	
	public boolean choconave(NaveGeneral nave){
		boolean condicion1=false;
		boolean condicion2=false;
		if (!nave.esjefe()){
		condicion1=((this.getLocation().getX()<=(nave.getLocation().getX()+(nave.getWidth()))) && (this.getLocation().getX()>=(nave.getLocation().getX())));
		condicion2=((this.getLocation().getY()<=(nave.getLocation().getY()+nave.getHeight())) && (this.getLocation().getY()>=(nave.getLocation().getY())));
		}
		else{
		condicion1=true;
		condicion2= this.getLocation().getY()<=5;
		}
		return (condicion1 && condicion2);
	}
}



